<?php
	/*Classe EtatElt : 
	* Classe représentant l'état d'un élement de la maison. Cette classe doit suivre la représentation Pattern State
	* Variables : 
	* $etatElt : variable représentant l'etat actuel de l'élément. Dans le cas d'un élément à 2 etats possibles, etatElt est un 		* booléen, dans le cas d'un chauffage c'est un entier.
	* $id : variable représentant l'identifiant de l'élément.
	* $type : variable représentant le type d'élément.
	* Remarques : 
	* Cette architecture se base sur le principe des variables non typées de PhP. Si on doit forcer le type de $etatElt pour le 		* sérialiser alors il faut vérifier si cette architecture est viable lors de la desérialisation.
	* Doit vérifier si l'objet ne comporte pas trop d'informations.
	* Doit vérifier si l'objet respecte bien le Pattern State.
	*/
	class EtatElt
	{
		protected $etatElt;	
		protected $id;	
		protected $type;
		
		public function __construct($id, $type)
		{
			$this->type=$type;
			$this->id = $id;
			if($type==1)
			{
				$etatElt = false;
			}
			else if($type==2)
			{
				$etatElt = 0;
			}
			else	//Cas de type non reconnu : etatElt est initialisé a -1.
			{
				$etatElt = -1;
			}
		}
		public function __set($value)	//On ne peut pas modifier $type et $id une fois instanciés car trop dangereux.
		{
			$etatElt=$value;
		}
		public function __get($name)
		{
			if($name == "$id")
			{
				return $id;
			}
			else if($name == "$etatElt")
			{
				return $etatElt;
			}
			else if($name == "$type")
			{
				return $type;
			}
			else return NULL;
		}
	}
?>
